package org.example.product.dao;


import org.apache.ibatis.annotations.Param;
import org.example.product.entity.SpuInfoEntity;
import org.example.product.to.order.SpuInfoTo;
import org.example.product.vo.SpuInfoVo;

import java.util.List;
import java.util.Set;

/**
 * @author 小杰_cc
 * @version 1.0
 */
public interface SpuInfoDao{
    // 保存spu基本信息
    int addSpuInfo(SpuInfoEntity spuInfo);
    // 获取spu信息集合
    List<SpuInfoEntity> getSpuInfoList(@Param("spuTitle") String spuTitle,@Param("categoryId") Long categoryId, @Param("brandId") Long brandId, @Param("status") Integer status);
    // 获取spu基本信息
    SpuInfoVo getSpuInfoById(@Param("spuId") Long spuId);
    // 修改spu基本信息
    int updateSpuInfo(SpuInfoEntity spuInfo);
    // 修改spu状态
    void updateSpuStatus(@Param("spuId") Long spuId, @Param("status") Integer status);
    // 订单查询spu信息
    List<SpuInfoTo> getOrderSpuList(@Param("spuIds") Set<Long> spuIds);
    // 获取到spu的标题
    String getSpuTitleById(@Param("spuId") Long spuId);
    // 商品下架
    int productDown(@Param("spuIds") List<Long> spuIds);

    int countSpuByCategoryIds(@Param("ids") List<Long> ids);

    int countSpuByBrandIds(@Param("ids") List<Long> ids);
}